//
//  DMTabBar.swift
//  DM_新浪微博
//
//  Created by Damon.JiAo on 16/2/25.
//  Copyright © 2016年 Demon_JiAo. All rights reserved.
//

import UIKit

class DMTabBar: UITabBar {

    /** 自定义视图三部曲 */
    
    // 第一步 每一个视图都会首先调用此方法
    override init(frame: CGRect) {
        super.init(frame: frame)
        //mark -- 再视图第一次创建的时候 直接返回需要的UITabBar
        setInfo()
        
    }
    // 这是系统根据自身是否利用storyBoard加载视图的方法
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // 第二步 根据系统的提示-调用此方法
    private func setInfo(){
        
        addSubview(composeButton)
        
    }
    
    // 第三步 懒加载
    lazy var composeButton:UIButton = {
       
        let button = UIButton(type: UIButtonType.Custom)
        
        /** 内部存在一个“仿”拼接图片的思路 */
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        
        /** 显示大小 */
        button.sizeToFit()
        
        return button
    }()
    
    /** 在这个位置能拿到所有子控件的Frame -- 从而可以改frame */
    override func layoutSubviews() {
        super.layoutSubviews()
        
        var index = 0
        let width = bounds.width / 5
        let height = bounds.height
        
        for subview in subviews{
            
            /** 根据字符串-来判断是否属于UITabBarButton的类/是！则修改frame */
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!){
                
                subview.frame = CGRectMake(CGFloat (index++) * width, 0, width, height)
                
                /** 在重要的地方空出来frame来 */
                if index == 2 {index++}
            }
            
        }
        composeButton.frame = CGRectMake(2 * width, 0, width, height)
//        print(subviews)
    }
}
